前一篇提到DynamoDB API與AWS SDK架構的時候,即出現了SDK三種Interface,而這些是當我們撰寫Lambda時能選用的介面,本篇稍微看一下其中的差異與內容。
指的即是那些存取DynamoDB基本屬性資料的存取method
在文件範例中所示的部分程式
key.put("Artist", new AttributeValue().withS("No One You Know"));
key.put("SongTitle", new AttributeValue().withS("Call Me Today"));
所謂下層介面的部分指的就是那些存取屬性的method中,直接以DynamoDB資料類型命名的那些,例如 S 表示字串或 N 表示數字。
AWS SDK提供的文件介面是為了包裝對於資料表、索引的資料CRUD操作。讓你方便處理存取Item結果集,同時也提供對應使用語言的資料型別。
範例中程式碼
Table table = docClient.getTable("Music");
GetItemOutcome outcome = table.getItemOutcome(
"Artist", "No One You Know",
"SongTitle", "Call Me Today");
int year = outcome.getItem().getInt("Year");
其中的GetItemOutcome結果提供了getItem與getInt的包裝函式以進行操作。
以上兩種介面都提供你相對面向資料庫層面的一步步處理方法。
此外ASK亦提供物件描述方式操作DynamoDB,讓我們可以撰寫物件導向方法進行處理,這類介面即為透過DynamoDBMapper應用操作。
MusicItem keySchema = new MusicItem();
keySchema.setArtist("No One You Know");
keySchema.setSongTitle("Call Me Today");
MusicItem result = mapper.load(keySchema);
範例中會看到透過物件介面即可更容易地操作DynamoDB,少寫很多程式碼。我們可以在bean當中應用DynamoDB Annotation進行描述各種屬性、資料轉換或資料表、索引定義等。在之後實作文章會有更詳細的內容。